package com.gdawj.ejb;

import com.gdawj.javabeans.Aide;
import java.util.List;
import javax.annotation.Resource;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.DenyAll;
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.ejb.SessionContext;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless
@LocalBean
public class AideEJB {

    // unite de persistance
    @PersistenceContext(unitName="webcolepu")
    private EntityManager em;

    @Resource
    SessionContext sc;

    // recuperer une aide de la liste
    public Aide getAide(int idAide)
    {
       return em.find(Aide.class, idAide);
    }


    // retourner la liste des aides
    public List<Aide> getListe()
    {
    	Query query=em.createNamedQuery("listeAides");
        return query.getResultList();
    }

    // ajouter une aide
    public Aide ajouter(Aide aide) {  
        em.persist(aide);
        return aide;
    }

    // modifier une aide
    public Aide modifier(Aide aide)
    {
        return em.merge(aide);
    }

    // supprimer une aide
    public void supprimer(int idAide)
    {
        Aide a=this.getAide(idAide);
        if(a!=null)
        {
                em.remove(em.merge(a));
	}
    }

    // trouver la page d'aide adaptee
    public String getAideUrlCourante(String urlCourante)
    {
        if(urlCourante!=null){
            // trouver l'aide de l'URL courante
            Query query=em.createNamedQuery("aideAvecParam");
            query.setParameter("fpage", "%"+urlCourante+"%");
            try
            {
                return ((Aide)query.getSingleResult()).getContenu();
            }
            catch(Exception e)
            {
            }
        }
        return "";
    }
    
}
